<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>111</title>
</head>

<body>

</body>

</html>
<script>
    var arr = [1,3,{age:20,sex:false}];
    //方法一:
    function copyObj(arr) {
        // 判断obj2是否是数组类型,如果obj2是数组类型则将obj2初始化为空数组，否则初始化为空对象
        var arr2 = Array.isArray(arr) ? [] : {}
        for (var key in arr) {
            // 判断属性值是否为引用类型，如果是引用类型，则需要继续循环遍历处理该属性的值(递归),不是引用类型, 直接拷贝该属性的值
            arr2[key] = (typeof arr[key] == 'object' ? copyObj(arr[key]) : arr[key])
        }
        return arr2
    }
    var arr2 = copyObj(arr)
    console.log(arr, arr2);
    arr.push('coding')
    console.log(arr, arr2);
</script>